Micron Document
Manual: `F0af`_`[Transport Nodes and Instances ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/networks.md|anchor=transport-nodes-and-instances]`_`f

A `!transport`! `!node`! is an `F0af`_`[instance`:/page/wiki.mu`path=Instance]`_`f that also routes data across its `F0af`_`[interfaces`:/page/wiki.mu`path=Interface]`_`f.

Transport nodes forward `F0af`_`[packets`:/page/wiki.mu`path=Packet]`_`f across hops, propagate `F0af`_`[announces`:/page/wiki.mu`path=Announce]`_`f, maintain `F0af`_`[path tables`:/page/wiki.mu`path=Path|anchor=table]`_`f, serve `F0af`_`[path requests`:/page/wiki.mu`path=Path|anchor=request]`_`f on behalf of other `F0af`_`[nodes`:/page/wiki.mu`path=Node]`_`f and function as distributed cryptographic keystores.`:cite-ref-0-1-0[`F5bf`_`[1`#cite-note-0-1]`_`f]

While every node `*can`* become a transport node, it is not recommended. In most cases, it will degrade the performance and reliability of the network.`:cite-ref-0-1-1[`F5bf`_`[1`#cite-note-0-1]`_`f]

`*In general terms, if a node is stationary, well-connected and kept running most of the time, it is a good candidate to be a transport node. For optimal performance, a network should contain the amount of transport nodes that provides connectivity to the intended area / topography, and not many more than that.`*

A network will typically have a relatively small number of transport nodes in strategic positions, providing coverage and connectivity. End-user devices will typically be instances connected to the wider network through a nearby transport node.

Reticulum does work without any transport nodes, but only nodes that are in direct contact or within communication range will be able to communicate.

`*`!Note:`!`* `*Transport nodes are not the same as `F0af`_`[LXMF`:/page/wiki.mu`path=LXMF]`_`f's `F0af`_`[propagation nodes`:/page/wiki.mu`path=Propagation_node]`_`f; transport nodes enable multi-hop routing at the `F0af`_`[Reticulum Protocol`:/page/wiki.mu`path=Reticulum_Protocol]`_`f level while propagation nodes provide optional asynchronous messaging features to LXMF.`*

>>Contents

• `F0af`_`[Cryptographic keystores`#cryptographic-keystores]`_`f
• `F0af`_`[Usage`#usage]`_`f
• `F0af`_`[See also`#see-also]`_`f
• `F0af`_`[References`#references]`_`f

>>Cryptographic keystores

When a destination announces itself, transport nodes will cache the public key of the destination's associated `F0af`_`[identity`:/page/wiki.mu`path=Identity]`_`f. If a `F0af`_`[node`:/page/wiki.mu`path=Node]`_`f doesn't have the public key for a destination, it can request it from the network, and any transport node that has it will respond with the cached information. This ensures that public keys remain available throughout the network without the need for a central directory service.`:cite-ref-0-1-2[`F5bf`_`[1`#cite-note-0-1]`_`f]

>>Usage

In `F0af`_`[RNS`:/page/wiki.mu`path=RNS]`_`f, set `B100`F9d9enable_transport = true`f`b in the configuration file.

>>See also

• `F0af`_`[Instance`:/page/wiki.mu`path=Instance]`_`f
• `F0af`_`[Interface`:/page/wiki.mu`path=Interface]`_`f
• `F0af`_`[Path`:/page/wiki.mu`path=Path]`_`f

>>References

`:cite-note-0-1`!1.`! `F0af`_`[↑`#cite-ref-0-1-0]`_`f `*Transport Nodes and Instances`*, Manual. `F0af`_`[`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/networks.md|anchor=transport-nodes-and-instances] ↗`_`f

>>Reticulum concepts

`F0af`_`[Announce`:/page/wiki.mu`path=Announce]`_`f • `F0af`_`[Blackhole`:/page/wiki.mu`path=Blackhole]`_`f • `F0af`_`[Buffer`:/page/wiki.mu`path=Buffer]`_`f • `F0af`_`[Channel`:/page/wiki.mu`path=Channel]`_`f • `F0af`_`[Destination`:/page/wiki.mu`path=Destination]`_`f • `F0af`_`[Discovery`:/page/wiki.mu`path=Discovery]`_`f • `F0af`_`[Identity`:/page/wiki.mu`path=Identity]`_`f • `F0af`_`[Instance`:/page/wiki.mu`path=Instance]`_`f • `F0af`_`[Interface`:/page/wiki.mu`path=Interface]`_`f • `F0af`_`[Interface Access Code`:/page/wiki.mu`path=Interface_Access_Code]`_`f (IFAC) • `F0af`_`[Link`:/page/wiki.mu`path=Link]`_`f • `F0af`_`[Network identity`:/page/wiki.mu`path=Network_identity]`_`f • `F0af`_`[Node`:/page/wiki.mu`path=Node]`_`f • `F0af`_`[Packet`:/page/wiki.mu`path=Packet]`_`f • `F0af`_`[Path`:/page/wiki.mu`path=Path]`_`f • `F0af`_`[Propagation node`:/page/wiki.mu`path=Propagation_node]`_`f • `F0af`_`[Resource`:/page/wiki.mu`path=Resource]`_`f • `F0af`_`[Stamp`:/page/wiki.mu`path=Stamp]`_`f • Transport node

>>Transport node

`!Source:`! `F0af`_`[Transport.py ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=RNS/Transport.py]`_`f
`!API:`! `F0af`_`[RNS.Transport ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/reference.md|anchor=RNS.Transport]`_`f